function appData() {

    var appC = appController();

    // 增例
    function insert(url, params, callback) {

        appC[appType.insert]($.getRadParamUrl(appApi(url)), params, function(data) {

            callback(data);
        });
    }

    // 删例
    function del(url, params, callback, $this) {

        appC[appType.del]($.getRadParamUrl(appApi(url) + appJoin + "/" + params.id), null, function(data) {

            callback(data, $this);
        });
    }

    // 改例
    function update(url, params, callback, $this) {

        appC[appType.update]($.getRadParamUrl(appApi(url) + appJoin + "/" + params.id), params, function(data) {

            callback(data, $this);
        });
    }

    // 查例
    function sel(url, params, callback, $this, loading) {

        appC[appType.sel]($.getRadParamUrl(appApi(url) + appJoin + "/" + params.id), params, function(data) {

            callback(data, params, $this);
        }, loading);
    }

    // 查例
    function selectList(url, params, callback, $this, loading) {

        appC[appType.sel]($.getRadParamUrl(appApi(url)), params, function(data) {

            callback(data);
        }, loading);
    }

    // 有回调之查询
    function selCallback(url, params, callback, $this, loading) {

        appC[appType.sel]($.getRadParamUrl(appApi(url) + appJoin + "/" + params.id), params.param, function(data) {

            callback(data, params.callbackParam, $this);
        }, loading);
    }

    /**
     * 查询菜单
     */
    function selectMenu(url, params, callback) {

        appC[appType.sel]($.getRadParamUrl(appApi(url)), params, function(data) {

            callback(data);
        });
    }

    return {

        "insert": function(url, params, callback) {

            insert(url, params, callback);
        },

        "del": function(url, params, callback, $this) {

            del(url, params, callback, $this);
        },

        "update": function(url, params, callback, $this) {

            update(url, params, callback, $this);
        },

        "sel": function(url, params, callback, $this, loading) {

            sel(url, params, callback, $this, loading);
        },

        "selectList": function(url, params, callback, $this, loading) {

            selectList(url, params, callback, $this, loading);
        },

        "selectMenu": function(url, params, callback) {

            selectMenu(url, params, callback);
        },

        "selCallback": function(url, params, callback, $this, loading) {

            selCallback(url, params, callback, $this, loading);
        }
    };

}